package com.xpf.entity;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.xpf.annotations.FieldName;
import com.xpf.service.process.entity.ProcessCommonDTO;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 用户流程-客户异常状态变更申请
 */
@NoArgsConstructor
@Data
public class CustomerStatusChangeBatchAuditReq extends ProcessCommonDTO {

    /**
     * 审核流程类型
     */
    private String auditProcessType;

    /**
     * 申请客户用户id
     */
    @NotNull(message = "申请客户用户id不能为空")
    @JsonProperty("clienteleIds")
    private List<String> clienteleIds;

    /**
     * 客户类群
     */
    @JsonProperty("customerClass")
    @NotBlank(message = "客户类群不能为空")
    private String customerClass;
    /**
     * 客户类群名称
     */
    @JsonProperty("customerClassName")
    @NotBlank(message = "客户类群不能为空")
    @FieldName("客户类群")
    private String customerClassName;
    /**
     * 原异常状态
     */
    @JsonProperty("customerStatus")
    @NotBlank(message = "原异常状态不能为空")
    private String customerStatus;

    @JsonProperty("customerStatusName")
    @NotBlank(message = "原异常状态名称不能为空")
    @FieldName("原客户状态")
    private String oldCustomerStatusName;

    /**
     * 归属集团
     */
    @JsonProperty("subId")
    @NotNull(message = "归属集团不能为空")
    private Integer subId;
    /**
     * 归属集团
     */
    @JsonProperty("subCustomerName")
    @NotBlank(message = "归属集团不能为空")
    @FieldName("归属集团")
    private String subCustomerName;
    /**
     * 业务通路
     */
    @JsonProperty("customerGroupType")
    @NotBlank(message = "业务通路不能为空,请修改通路后再次发起")
    private String customerGroupType;
    /**
     * 业务通路名字
     */
    @JsonProperty("customerGroupTypeName")
    @NotBlank(message = "业务通路名字不能为空,请修改通路后再次发起")
    @FieldName("业务通路")
    private String customerGroupTypeName;
    /**
     * 申请异常状态
     */
    @JsonProperty("newCustomerStatus")
    @NotBlank(message = "申请异常状态不能为空")
    private String newCustomerStatus;

    @JsonProperty("newCustomerStatusName")
    @NotBlank(message = "申请异常状态名称不能为空")
    @FieldName("申请异常状态")
    private String newCustomerStatusName;
    /**
     * 归属战区/片区
     */
    @JsonProperty("customerStatusMarketingOrg")
    @NotBlank(message = "归属战区/片区不能为空")
    private String  customerStatusMarketingOrg;
    @JsonProperty("customerStatusMarketingOrgName")
    @NotBlank(message = "归属战区/片区不能为空")
    @FieldName("归属战区/片区")
    private String  customerStatusMarketingOrgName;
    /**
     * 申请原因
     */
    @JsonProperty("customerStatusChangeReason")
    @NotBlank(message = "申请原因不能为空")
    private String  customerStatusChangeReason;
    @JsonProperty("customerStatusChangeReasonName")
    @NotBlank(message = "申请原因名字不能为空")
    @FieldName("申请原因")
    private String  customerStatusChangeReasonName;
    /**
     * 申请说明
     */
    @JsonProperty("remarks")
    @FieldName("申请说明")
    private String remarks;
    /**
     * 钉钉发起人部门id
     */
    @JsonProperty("ddDepartmentId")
    private String ddDepartmentId;
    /**
     * 附件url列表
     */
    @FieldName("相关变更凭证")
    private List<String> changeCertificateAttachmentList;

    private List<Integer> ids;

    private List<String> clienteleNames;

}